#ifndef ECGWAVEWIDGET_H
#define ECGWAVEWIDGET_H

#include "qpen.h"
#include <QWidget>
#include <QVector>
#include <QTimer>
#include <QQueue>
#include <QMutex>
#include <QtConcurrent>
#include <QFutureWatcher>
#include <ConcurrentPipeline.h>
#include <QGraphicsView>
/// 心电波形绘制组件
class EcgWaveWidget:public QWidget
{
    Q_OBJECT
public:
    explicit EcgWaveWidget(QWidget *parent = nullptr);
    ~EcgWaveWidget();
    void addDataPoint(const QList<int> &data); // 添加采样点
    void setGain(double gain);       // 控制幅度
    void setSpeed(double speed);     // 控制滚动速度
    void draw(const QList<int> &data); //绘制
    void calculateStep();//计算步长
private:
    void paintEvent(QPaintEvent *event) override;
    void resizeEvent(QResizeEvent *event) override;
    double m_gain  = 10;//10mm/mv
    double m_speed =25; //25mm/s
    //QTimer *m_timer = nullptr;
    double m_drawPos;      // 当前绘制位置 (x)
    double m_lastValue = -9999; // 上一个点
    int m_midY;         // 中线高度
    double CmToPxValue=1; // 水平像素密度;
    bool m_pixmap_reset = false; //是否重置了
    double canvasWidth = 0; //画布宽度
    double step = 1;//步长
    int OneScreenPointCount = 0;//一屏能画多少点
    QImage image;
    QPen pen;


};


#endif // ECGWAVEWIDGET_H
